"use strict";

const {Service} = require("egg");

class classNoticeService extends Service {
  /**
   * 创建一个新公告
   * @param {string} title 标题
   * @param {string} content 内容
   * @param {number} u_id 创建者id
   * @param {number} c_id 班级id
   */
  async add(title,content,u_id,c_id) {
    const {app, ctx} = this
    try {
      let datetime = ctx.helper.parseTime(new Date())
      await app.mysql.insert("c_notice", {title,content,u_id,c_id,datetime})
      app.logger.info(u_id+"为班级"+c_id+"创建了公告")
      return {suc:true,msg:"创建公告成功"}
    } catch (e) {
      app.logger.error(e)
      return {suc:false,msg:e}
    }
  }

  /**
   * 删除班级公告
   * @param {number} id 公告id
   * @returns {Promise<{suc: boolean, msg}>}
   */
  async del(id) {
    //console.log(id)
    const {app, ctx} = this
    const mysql =  app.mysql
    try {
      await mysql.delete("c_notice",{id})
      app.logger.info("删除了公告"+id)
      return {suc:true,msg:"删除公告成功"}
    } catch (e) {
      app.logger.error(e)
      return {suc:false,msg:e}
    }
  }

  /**
   * 获取一个Notice
   * @param {ClassNotice} classNotice
   */
  async getOne(classNotice){
    const {app, ctx} = this
    const mysql =  app.mysql
    try {
      let query = await mysql.get("c_notice",classNotice)
      app.logger.info("查询了公告"+query.id)
      return {suc:true,msg:"查询公告成功",data:query}
    } catch (e) {
      app.logger.error(e)
      return {suc:false,msg:e}
    }
  }

  /**
   * 获取某个班级全部公告
   * @param{number} c_id 班级id
   */
  async classGetAll(c_id){
    const {app, ctx} = this
    try {
      let list = await app.mysql.select("c_notice",{where:{c_id}})
      app.logger.info("查询了班级"+c_id+"的全部公告")
      return {suc:true,msg:"查询班级全部公告成功",data:list}
    } catch (e) {
      app.logger.error(e)
      return {suc:false,msg:e}
    }
  }
}
module.exports = classNoticeService
